package com.palmcity.rtti.base;

import java.io.Serializable;


/**
 * <p>DTIEvent</p>
 * <p>DTI交通事件实体</p>
 *
 * @author		周华彬(zhouhuabin@ctfo.com, zhou_hua_bin@163.com)
 * @version		0.0.0
 * <table style="border:1px solid gray;">
 * <tr>
 * <th width="100px">版本号</th><th width="100px">动作</th><th width="100px">修改人</th><th width="100px">修改时间</th>
 * </tr>
 * <!-- 以 Table 方式书写修改历史 -->
 * <tr>
 * <td>0.0.0</td><td>创建类</td><td>zhouhuabin</td><td>2014年12月12日 下午7:04:10</td>
 * </tr>
 * <tr>
 * <td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td>
 * </tr>
 * </table>
*/
public class DTIEvent implements IDTI, Serializable {

	/** TODO */
	private static final long serialVersionUID = -8681210894344469733L;

	/**
	 * 是否是文字路况。文字路况由掌城路况通的语音文字路况播报使用，其他客户不适用
	 */
	boolean isTextRoad = false;

	/** 事件id */
	private String eventId;

	/**
	 * 事件信息来源 分为网页和提供商
	 */
	private String eventSource;
	/** 事件标题 */
	private String title;
	/** 事件简短标题 */
	private String shortTitle;

	/**
	 * 事件信息类型 0:没有原因 1:交通事故 2:火灾 3:路上障碍物 4:道路施工 5:道路作业 6:活动 7:气象 8:灾害 9:一般事故
	 * 10:其他
	 */
	private int eventType;

	/**
	 * 事件详细类型说明 eventSType 和 eventType共同确定事件的具体原因
	 */
	private int eventSType;

	/**
	 * 交通管制类型 0:无限制 1:通行限制 2:转弯限制 3:速度限制 4:入口匝道限制 5:出口匝道限制 6:双向道路单侧通行限制
	 * 7:车辆类型限制 8:车道通行限制 9:其他
	 */
	private int eventCtlType;

	/**
	 * 事件详细类型说明 eventCtlSType 和 eventCtlType共同确定事件的具体原因
	 */
	private int eventCtlSType;

	/**
	 * 事件紧急程度 * 1:非常紧急 2:紧急 3:一般
	 */
	private int severity;

	/** 交通管制文字描述 */
	private String remarkControl;

	/** 事件文字描述 */
	private String remarkEvent;
	/** 事件发生的位置 */
	private EventLocation eventLocation;
	/** 事件发生的时间 */
	private EventTime eventTime;

	public DTIEvent() {
		isTextRoad = false;
		eventLocation = new EventLocation();
		eventTime = new EventTime();
		remarkEvent = "";
		remarkControl = "";
		eventSource = "";
		title = "";
		shortTitle = "";
	}

	/**
	 * FIXME 
	 * @return
	 */
	public boolean isTextRoad() {
		return isTextRoad;
	}

	/**
	 * FIXME 
	 * @param isTextRoad
	 */
	public void setTextRoad(boolean isTextRoad) {
		this.isTextRoad = isTextRoad;
	}

	/**
	 * 字段 eventId 获取函数
	 * @return the eventId : String
	 */
	public String getEventId() {
		return eventId;
	}

	/**
	 * 字段 eventId 设置函数 : String
	 * @param eventId the eventId to set
	 */
	public void setEventId(String eventId) {
		this.eventId = eventId;
	}

	/**
	 * 字段 eventSource 获取函数
	 * @return the eventSource : String
	 */
	public String getEventSource() {
		return eventSource;
	}

	/**
	 * 字段 eventSource 设置函数 : String
	 * @param eventSource the eventSource to set
	 */
	public void setEventSource(String eventSource) {
		this.eventSource = eventSource;
	}

	/**
	 * 字段 title 获取函数
	 * @return the title : String
	 */
	public String getTitle() {
		return title;
	}

	/**
	 * 字段 title 设置函数 : String
	 * @param title the title to set
	 */
	public void setTitle(String title) {
		this.title = title;
	}

	/**
	 * 字段 shortTitle 获取函数
	 * @return the shortTitle : String
	 */
	public String getShortTitle() {
		return shortTitle;
	}

	/**
	 * 字段 shortTitle 设置函数 : String
	 * @param shortTitle the shortTitle to set
	 */
	public void setShortTitle(String shortTitle) {
		this.shortTitle = shortTitle;
	}

	/**
	 * 字段 eventType 获取函数
	 * @return the eventType : int
	 */
	public int getEventType() {
		return eventType;
	}

	/**
	 * 字段 eventType 设置函数 : int
	 * @param eventType the eventType to set
	 */
	public void setEventType(int eventType) {
		this.eventType = eventType;
	}

	/**
	 * 字段 eventSType 获取函数
	 * @return the eventSType : int
	 */
	public int getEventSType() {
		return eventSType;
	}

	/**
	 * 字段 eventSType 设置函数 : int
	 * @param eventSType the eventSType to set
	 */
	public void setEventSType(int eventSType) {
		this.eventSType = eventSType;
	}

	/**
	 * 字段 eventCtlType 获取函数
	 * @return the eventCtlType : int
	 */
	public int getEventCtlType() {
		return eventCtlType;
	}

	/**
	 * 字段 eventCtlType 设置函数 : int
	 * @param eventCtlType the eventCtlType to set
	 */
	public void setEventCtlType(int eventCtlType) {
		this.eventCtlType = eventCtlType;
	}

	/**
	 * 字段 eventCtlSType 获取函数
	 * @return the eventCtlSType : int
	 */
	public int getEventCtlSType() {
		return eventCtlSType;
	}

	/**
	 * 字段 eventCtlSType 设置函数 : int
	 * @param eventCtlSType the eventCtlSType to set
	 */
	public void setEventCtlSType(int eventCtlSType) {
		this.eventCtlSType = eventCtlSType;
	}

	/**
	 * 字段 severity 获取函数
	 * @return the severity : int
	 */
	public int getSeverity() {
		return severity;
	}

	/**
	 * 字段 severity 设置函数 : int
	 * @param severity the severity to set
	 */
	public void setSeverity(int severity) {
		this.severity = severity;
	}

	/**
	 * 字段 remarkControl 获取函数
	 * @return the remarkControl : String
	 */
	public String getRemarkControl() {
		return remarkControl;
	}

	/**
	 * 字段 remarkControl 设置函数 : String
	 * @param remarkControl the remarkControl to set
	 */
	public void setRemarkControl(String remarkControl) {
		this.remarkControl = remarkControl;
	}

	/**
	 * 字段 remarkEvent 获取函数
	 * @return the remarkEvent : String
	 */
	public String getRemarkEvent() {
		return remarkEvent;
	}

	/**
	 * 字段 remarkEvent 设置函数 : String
	 * @param remarkEvent the remarkEvent to set
	 */
	public void setRemarkEvent(String remarkEvent) {
		this.remarkEvent = remarkEvent;
	}

	/**
	 * 字段 eventLocation 获取函数
	 * @return the eventLocation : EventLocation
	 */
	public EventLocation getEventLocation() {
		return eventLocation;
	}

	/**
	 * 字段 eventLocation 设置函数 : EventLocation
	 * @param eventLocation the eventLocation to set
	 */
	public void setEventLocation(EventLocation eventLocation) {
		this.eventLocation = eventLocation;
	}

	/**
	 * 字段 eventTime 获取函数
	 * @return the eventTime : EventTime
	 */
	public EventTime getEventTime() {
		return eventTime;
	}

	/**
	 * 字段 eventTime 设置函数 : EventTime
	 * @param eventTime the eventTime to set
	 */
	public void setEventTime(EventTime eventTime) {
		this.eventTime = eventTime;
	}

}